package com.service.admin;

import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * 管理员关于用户的服务接口
 *
 * 
 */
public interface AdminUserService {

  /**
   * 获取所有用户数量
   *
   * @return 所有用户数量
   */
  int getAllUserCount();

  /**
   * 获取所有用户
   *
   * @param pageSize 页大小
   * @param pageIndex 页索引
   * @return 用户列表
   */
  List<Map<String, Object>> getAllUsers(int pageSize, int pageIndex, String userId);

  /**
   * 获取用户的商品出售权限
   *
   * @param userId 用户编号
   * @return 用户商品违规次数
   */
  Map<String, Object> getUserGoodPermission(String userId);

  /**
   * 设置用户出售商品的权限
   *
   * @param userId 用户编号
   * @param toTime 此时间之前取消该用户卖书权限
   * @param goodBeReportedCount 商品违规次数如果此项为原值自加，则传-1
   * @return 成功返回1，失败返回0
   */
  int setUserSellPermission(String userId, Date toTime, int goodBeReportedCount);

  /**
   * 获取用户的评论权限
   *
   * @param userId 用户编号
   * @return 评论被举报成功次数、禁言至
   */
  Map<String, Object> getUserCommentPermission(String userId);

  /**
   * 设置用户评论权限
   *
   * @param userId 用户编号
   * @param toTime 此时间之前取消该用户评论权限
   * @param commentBeReportCount 评论违规次数,如果此项为原值自加，则传-1
   * @return 成功返回1，失败返回0
   */
  int setUserCommentPermission(String userId, Date toTime, int commentBeReportCount);
}
